#include <iostream>
using namespace std;

class Computer
{
public:
	void product()
	{
		installCpu();
		installRam();
		installGraphicsCard();
	}

protected:
	virtual void installCpu() = 0;
	virtual void installRam() = 0;
	virtual void installGraphicsCard() = 0;
};

class ComputerA : public Computer
{
protected:
	void installCpu()// override
	{
		cout << "ComputerA install Inter Core i5" << endl;
	}

	void installRam()// override
	{
		cout << "ComputerA install 2G Ram" << endl;
	}

	void installGraphicsCard()// override
	{
		cout << "ComputerA install Gtx940 GraphicsCard" << endl;
	}
};

class ComputerB : public Computer
{
protected:
	void installCpu()// override
	{
		cout << "ComputerA install Inter Core i7" << endl;
	}
	
	void installRam()// override
	{
		cout << "ComputerA install 4G Ram" << endl;
	}
	
	void installGraphicsCard()// override
	{
		cout << "ComputerA install Gtx960 GraphicsCard" << endl;
	}
};

int main()
{
	Computer *computerA = new ComputerA;
	computerA->product();
	Computer *computerB = new ComputerB;
	computerB->product();

	return 0;
}